package com.aoxin.mapper.activity;

import java.math.BigDecimal;
import java.util.List;

import com.aoxin.model.activity.SlfRecommendMoneySale;
import org.apache.ibatis.annotations.Param;

import com.aoxin.model.activity.SlfRecommendMoney;


/**
 * 推荐金额mapper
 * @author lop
 * @date 2018年4月28日 上午12:15:19
 */
public interface RecommendMoneyMapper {

	/**
	 * 查询上下线关系，及详细信息查询
	 * @param slfRecommendMoney
	 * @return
	 */
	List<SlfRecommendMoney>getRecommendMoney(SlfRecommendMoney slfRecommendMoney);
	/**
	 * 添加推荐人与被推荐人关系数据
	 * @param slfRecommendMoney
	 */
	void insertSelective(SlfRecommendMoney slfRecommendMoney);

	/**
	 * 添加销售推荐人与被推荐人关系数据
	 * @param slfRecommendMoneySale
	 */
	void insertRecommendMoneySale(SlfRecommendMoneySale slfRecommendMoneySale);

	/**
	 * 查询销售推荐人与被推荐人关系数据
	 * @return
	 */
	List<SlfRecommendMoneySale> queryRecommendMoneySale(SlfRecommendMoneySale slfRecommendMoneySale);
	/**
	 * 查询推荐金额不为空的数据
	 * @param refereeId
	 * @return
	 */
	Integer getReferralsCount(@Param("refereeId")Integer refereeId);
	/**
	 *  更新推荐金额
	 * @param recommendMoney 更新金额
	 * @param referralsId 推荐人或被推荐人ID
	 * @param allBoolean 是否全更
	 * @return
	 */
	Integer updateRecommendMoney(@Param("recommendMoney")BigDecimal recommendMoney,
			@Param("referralsId")Integer referralsId,@Param("allBoolean")String allBoolean);
	/**
	 * 批量更新是否提现标志
	 * @param referralsIdS
	 * @return
	 */
	Integer updateIsWithdraw(@Param("referralsIdS")List<Integer> referralsIdS,@Param("isWithdraw")Integer isWithdraw);
	/**
	 * 查询有效推广人数
	 * @param refereeId
	 * @return
	 */
	Integer effectiveNumber(@Param("refereeId")Integer refereeId);
	/**
	 * 查询累计收益  --推荐下级得到的钱，包括提现未提现，下下级返的钱
	 * @param refereeId
	 * @return
	 */
	Integer cumulativeIncome(@Param("refereeId")Integer refereeId);
	/**
	 * 查询可提现金额
	 * @param refereeId
	 * @return
	 */
	Integer canWithdrawMoney(@Param("refereeId")Integer refereeId);
}
